A processor on a computing device executes a compiler to translate instructions of a program into machine code. One of the tasks of the compiler executed by the processor is to allocate registers to store values associated with the instructions, referred to as register allocation. Because not all values may be in use by the instructions at the same time, the compiler may assign different values to the same register. However, the compiler may not assign multiple values in use at the same time to the same register. For values that cannot be assigned to a register at a given time, the compiler may store such values within random access memory (RAM). In general, however, it may be more efficient to access values from the registers, than from RAM.